|
RAIS
3.2
|
00001 using System; 00002 using System.Collections.Generic; 00003 using System.Linq; 00004 using System.Text; 00005 using System.IO; 00006 using RAIS.DataAccessLayer; 00007 using System.Xml; 00008 using System.Data; 00009 using System.Data.SqlClient; 00010 00011 namespace FillCustomQueryTableCL 00012 { 00013 public class QueryNames 00014 { 00015 public static void CreatXml(string connectionString, string scriptsDirectory, string queriesFileName) 00016 { 00017 List<string> files = GetScriptsFromDirrectory(scriptsDirectory); 00018 00019 using (SqlConnection sqlConnection = new SqlConnection(connectionString)) 00020 { 00021 sqlConnection.Open(); 00022 using (XmlWriter xw = XmlWriter.Create(queriesFileName)) 00023 { 00024 xw.WriteStartElement("Queries"); 00025 foreach (string str in files) 00026 { 00027 xw.WriteStartElement("Query"); 00028 xw.WriteAttributeString("Name", str); 00029 00030 if (str.StartsWith("Statistics")) 00031 xw.WriteAttributeString("Type","Statistics"); 00032 else if (str.StartsWith("Query")) 00033 xw.WriteAttributeString("Type", "Query"); 00034 else if (str.StartsWith("Preselection List")) 00035 xw.WriteAttributeString("Type", "Preselection List"); 00036 else if (str.StartsWith("Preselection Filter")) 00037 xw.WriteAttributeString("Type", "Preselection Filter"); 00038 else if (str.StartsWith("Entry Filter") || str.StartsWith("UnAllocation - ")) 00039 xw.WriteAttributeString("Type", "Entry Filter"); 00040 else if (str.StartsWith("Consistency Check")) 00041 xw.WriteAttributeString("Type", "Consistency Check"); 00042 else 00043 xw.WriteAttributeString("Type", "Other"); 00044 00045 xw.WriteEndElement(); 00046 } 00047 xw.WriteEndElement(); 00048 } 00049 } 00050 } 00051 00052 private static List<string> GetScriptsFromDirrectory(string path) 00053 { 00054 List<string> files = new List<string>(); 00055 files.AddRange(Directory.GetFiles(path + "\\Create Preselection Filters")); 00056 files.AddRange(Directory.GetFiles(path + "\\Create Queries")); 00057 files.AddRange(Directory.GetFiles(path + "\\Create Scripts")); 00058 files.AddRange(Directory.GetFiles(path + "\\Create Statistics")); 00059 00060 return FilterQueries(files); 00061 } 00062 00063 private static List<string> FilterQueries(List<string> queries) 00064 { 00065 List<string> ret = new List<string>(); 00066 foreach (string query in queries) 00067 { 00068 string str = query.Substring(query.LastIndexOf("\\") + 1); 00069 str = str.Replace("Create FN ", ""); 00070 str = str.Replace(".sql", ""); 00071 str = str.Replace(" ", " "); 00072 if (!ret.Contains(str) && !str.StartsWith("Create ") && !str.StartsWith("Drop ") && !str.StartsWith("ufn_") /*&& !str.StartsWith("UnAllocation - ")*/) 00073 ret.Add(str); 00074 } 00075 return ret; 00076 } 00077 } 00078 }